package main

/*===error源码===
 */
/* [01] 错误接口 */
type error interface {
	Error() string
}

// errorString is a trivial implementation of error.
/* [02_0] 结构体，通过[02_1]实现了error接口 */
type errorString struct {
	s string
}

/* [02_1] 实现了 error 接口中的Error()方法，并且指定调用者为 errorString 结构体类型 */
func (e *errorString) Error() string {
	return e.s
}

/* [03] 构造函数，返回errorString实例对象，该实例由前两步可知是 error 接口的子类，故该类可以用接口变量存储 */
func New(text string) error {
	return &errorString{text} //返回一个结构体实例(内存地址)
}
